package hebClustering.nlp;

import java.util.Set;

import hebClustering.documentTypes.Document;
import hebClustering.searchEngines.WebsiteInformation;

/**
 * This interface describes the basic operation of a natural language processor.
 */
public interface INLP {
	
	/**
	 * Creates a new document from a given text and website information.
	 * 
	 * @param text - The text of the document.
	 * @param info - A data structure that holds information about the document.
	 * 
	 * @return A new document.
	 */
	public Document textToDocument(String text,WebsiteInformation info);
	
	/**
	 * Creates a set of documents from a given list of URLs.
	 * 
	 * @param urls - a list of URLs.
	 * 
	 * @return A list of documents.
	 */
	public Set<Document> urlsToDocuments(Set<WebsiteInformation> urls);
	
	/**
	 * Creates a single document from a given URL.
	 * 
	 * @param info -  A data structure that holds information about the document, including it's URL.
	 * 
	 * @return The created document.
	 */
	public Document urlToDocument(WebsiteInformation info);

}
